package com.ccmusic.dao;

import java.util.List;

import com.ccmusic.entity.Music;

/**
 * 管理员的音乐dao和用户的音乐dao是否应该分开活合并？ 应该合并吧 音乐的Dao层
 * 
 * @author cyf
 *
 */
public interface MusicDao {
	/**
	 * 增加音乐的方法
	 * 
	 * @param music
	 *            音乐对象,mid自增
	 * @return
	 */
	public boolean addMusic(Music music);

	/**
	 * 获取数据库中所有的音乐列表
	 * 
	 * @return 返回一个音乐的集合
	 */
	public List<Music> getAllMusic();

	/**
	 * 根据音乐名模糊查询音乐，返回音乐集合
	 * 
	 * @return
	 */
	public List<Music> getMusicByLikeName(String mname);

	/**
	 * 根据音乐名字删除音乐
	 * 
	 * @param mname
	 *            音乐名
	 * @return 布尔类型
	 */
	public boolean deleteMusicByName(String mname);

	/**
	 * 根据音乐id删除音乐
	 * 
	 * @param mname
	 *            音乐名
	 * @return 布尔类型
	 */
	public boolean deleteMusicByMid(int mid);

	/**
	 * 更新音乐名和音乐url
	 * 
	 * @param music
	 * @return
	 */
	public boolean updateMusic(Music music);

	/**
	 * 根据音乐id点赞
	 * 
	 * @param mid
	 *            音乐id
	 * @return 点赞成功返回true；点赞失败返回false
	 */
	public boolean likeIt(String mid);

	/**
	 * 根据音乐id取消点赞
	 * 
	 * @param mid
	 *            音乐id
	 * @return 取消点赞成功返回true；取消点赞失败返回false
	 */
	public boolean dislikeIt(String mid);

	/**
	 * 根据音乐url获取音乐
	 * 
	 * @param url	音乐url
	 * @return	如果存在返回该音乐对象，否则返回null
	 */
	public Music getMusicByMid(String url);
	
}
